// 主入口文件
let express = require("express");
const expressJWT = require('express-jwt');
let app = express();
app.listen(3000, function() {
  console.log(3000);
});

// 处理post请求参数解析
app.use(express.urlencoded({ extended: false }));

// 前提：
//      用户登录成功后，返回token值
// 现在：
//      需要用户接下来的请求中请求头部携带token值；
//      后台给每一个接口（除登录 注册外）做token验证：解密 解密出来用户id;
//      中间件第一层：公共处理
//      中间件第二层：错误处理
// 结果：
//      正确token算解密成功     ------------>req.user.id = 解密出来的id; 
//      遇到有问题token，解密不出----------->中间内部发出报错！
app.use(expressJWT({
  secret: 'token130',
  algorithms: ['HS256']
}).unless({
  path: ['/api/login', '/api/reguser']
}));


// 数据库配置和分类：
//     1.db.js 进行配置
//     2.复制 routers/category.js
//     3.在主文件，需要导入细分路由，并配置公共路径
let category = require("./routers/category");
app.use("/my/article", category);


let login = require("./routers/login");
app.use("/api", login);


let user = require("./routers/user");
app.use("/my", user);


let article = require("./routers/article");
app.use("/my/article", article);


app.use(function(err, req, res, next) {
  if (err.code == "invalid_token") {
    res.send({
      "status": 1,
      "message": "身份认证失败！"
    })
  }
});